<!DOCTYPE html>
<html lang="en">
	<head>
		<title>Filesystem Overview - Wave Framework</title>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width"/> 
		<link type="text/css" href="../style.css" rel="stylesheet" media="all"/>
		<link rel="icon" href="../../favicon.ico" type="image/x-icon"/>
		<link rel="icon" href="../../favicon.ico" type="image/vnd.microsoft.icon"/>
	</head>
	<body>
	
		<h1>Filesystem Overview</h1>
		
			<ul>
				<li><a href="#index-introduction">Introduction</a></li>
				<li><a href="#index-listing">Listing</a></li>
			</ul>

		<h2 id="index-introduction">Introduction</h2>
		
			<p>This document lists all the files included in the setup archive of Wave Framework, in alphabetical order.</p>

		<h2 id="index-listing">Listing</h2>

			<p><b>/controllers/</b></p>

			<p>Includes all controllers used by the system. Controllers are built with the following standard, where controllers name is written in filename as controller.{name}.php, class itself is defined as WWW_controller_{name} and when this controller is called with API, the command is $API-&gt;command({name}-{method}), where method is a method of that class. When this controller is created through WWW_Factory (within one of the <a href="guide_mvc.htm">MVC</a> objects), the command is $this-&gt;getController({name},{method},{data}), where method is a method of that class and {data} is input data to that method. If method and data are not defined, then object itself is returned instead of the function result.</p>

			<p><b>/controllers/controller.{name}.php</b></p>

			<p>This folder stores Controllers and the 'name' is the name of the Controller in the system.</p>

			<p><b>/controllers/controller.url.php</b></p>

			<p>This class is used by <a href="gateway.htm">Index Gateway</a> to solve current URL request. It uses the URL string of the request to calculate what view must be loaded and it uses an internal sitemap that it maps itself against, stored in /resources/{language-code}.sitemap.ini where language code is the language that WWW_controller_url detects is being used. This class also deals with things such as slashes at the end of URL's and whether first language of the sytem needs to have a URL node in the request string or not. It also redirects the user agent in case URL is incorrectly formatted. This class is optional and only needed if one intends to build a website with clean URL's with WWW framework.</p>

			<p><b>/controllers/controller.view.php</b></p>

			<p>View class is used by index.php to load view from /views/ folder and output it to the requesting user agent. View generates typical HTML header, includes various resource files and loads a view that WWW_controller_url detected being the proper URL that is loaded. This class also loads JavaScript, jQuery and API Wrapper library.</p>

			<p><b>/doc/<br/>
			/doc/pages/*.htm<br/>
			/doc/index.htm<br/>
			/doc/style.css</b></p>

			<p>Documentation subfolder includes all documentation about Wave Framework. Please refer to /doc/start.htm file as the starting point to get further information about this framework.</p>

			<p><b>/doc/examples/*.*</b></p>

			<p>This folder holds all the example files of Wave Framework. How to use these files are detailed in documentation tutorials.</p>

			<p><b>/engine/</b></p>

			<p>This folder includes all the core classes of Wave as well as all <a href="gateway.htm">Index Gateway</a> handlers. These files should not be modified unless deemed necessary, as they are part of core functionality of Wave Framework.</p>

			<p><b>/engine/class.www-api.php</b></p>

			<p>This is a class that is used for routing all of API commands through, it deals with validation and caching, calling the proper controller and returning data with right headers and the right format. API has encryption and input-output data validations, as well as some framework specific callbacks. There is usually just one instance of this object in Wave Framework and it can be used within <a href="guide_mvc.htm">MVC</a> objects through Factory class.</p>

			<p><b>/engine/class.www-database.php</b></p>

			<p>Simple database class that acts as a wrapper to PDO. It is not required to use <a href="database.htm">Database</a> with Wave Framework at all, but should it be required, it is available. This class uses PDO database class to simplify some of the database commands. It includes functions for returning data from database as a single row or multiple rows as associative arrays as well as get information about last inserted ID and number of rows affected by last query.</p>

			<p><b>/engine/class.www-factory.js</b></p>
			
			<p>This factory can be used to dynamically load JavaScript objects, libraries and more, that are placed in /resources/classes/ subfolder or in /resources/scripts/ subfolder.</p>
			
			<p><b>/engine/class.www-factory.php</b></p>

			<p>Factory class is required for loading <a href="guide_mvc.htm">MVC</a> objects. Factory is used as a parent class for supporting the <a href="guide_mvc.htm">MVC</a> components of the system, every <a href="guide_mvc.htm">MVC</a> component is (usually) inherited from this class. Factory carries with itself wrappers for <a href="guide_api.htm">API</a> and <a href="guide_state.htm">State</a> functionality.</p>

			<p><b>/engine/class.www-imager.php</b></p>

			<p>This class is used to handle basic image editing, mostly for file resizes and cropping. This is used by default by <a href="gateway.htm">Index Gateway</a> when a PNG or JPEG file is requested with specific parameters, but can also be used for other image editing in the system since it can be loaded independently.</p>

			<p><b>/engine/class.www-limiter.php</b></p>

			<p>This is an optional class that is used to limit HTTP requests based on user agent, IP, server condition and other information. This class is loaded by <a href="gateway.htm">Index Gateway</a>. <a href="limiter.htm">Limiter</a> can be used to block IP's if they make too many requests per minute, block requests if server load is detected as too high, block the request if it comes from blacklist provided by the system, allow only whitelisted IP's to access, ask for HTTP authentication or force the user agent to use HTTPS. Note that some of this functionality can be achieved by Apache configuration and modules, but it is provided here for cases where the project developer might not have control over server configuration.</p>

			<p><b>/engine/class.www-logger.php</b></p>

			<p>This is an optional class that is used to log requests on system by <a href="gateway.htm">Index Gateway</a>. <a href="logger.htm">Logger</a> is used to keep track of performance of requests made to <a href="gateway.htm">Index Gateway</a> files, it keeps track of how long the request took, what data it included, how high was the memory use, server load, CPU usage and so on. If this logger is used, then every single request is logged as serialized arrays in filesystem in '/filesystem/log/' subfolders. It is a good idea to clean that folder every now and then. There is a separate log-reader.php script for reading those log files situated in /tools/ subfolder.</p>

			<p><b>/engine/class.www-minifier.php</b></p>

			<p>Minifier is used to minify text data without breaking functionality of that text. This is useful to be applied to JavaScript, CSS Stylesheets, HTML and XML formats for purposes of making the file size smaller, thus increasing the performance when file is transferred over HTTP. You should be careful when using minifier however, since it might break functionality under some instances, so it is always good to test before deploying minified resources to live systems.</p>

			<p><b>/engine/class.www-sessions.php</b></p>
			
			<p>This is the Wave Framework session handler that is used instead of default session handling of PHP.</p>
			
			<p><b>/engine/class.www-state.php</b></p>

			<p><a href="guide_state.htm">State</a> is always required by Wave Framework. It is used by API and some handlers. <a href="guide_state.htm">State</a> is used to keep track of system state, configuration and its changes, such as relevant PHP settings. It allows changing these settings, and thus affecting API or PHP configuration. <a href="guide_state.htm">State</a> also includes functionality for <a href="guide_messenger.htm">State Messenger</a> , sessions, cookies, translations and sitemap data. <a href="guide_state.htm">State</a> is assigned in API and is accessible in <a href="guide_mvc.htm">MVC</a> objects through Factory wrapper methods. Multiple different states can be used by the same request, but usually just one is used per request. <a href="guide_state.htm">State</a> is only kept for the duration of the request processing and is not stored beyond its use in the request.</p>

			<p><b>/engine/class.www-tools.php</b></p>
			
			<p><a href="tools.htm">Tools Class</a> is used by Wave Framework Factory to allow for system-maintenance related functionality for MVC classes of the system. This allows to use filesystem cleaner, geenrate a file index of files or calculate file size of a folder.</p>
			
			<p><b>engine/class.www-wrapper.js</b></p>

			<p>This class should be used when you wish to communicate with Wave Framework that is set up in another server. This class is independent from Wave Framework itself and can be used by other servers alone. Differently from PHP API Wrapper, JavaScript API Wrapper does not support sending and receiving encrypted data.</p>

			<p><b>/engine/class.www-wrapper.php</b></p>

			<p>This class should be used when you wish to communicate with Wave Framework that is set up in another server. This class is independent from Wave Framework itself and can be used by other servers alone. This class allows sending and receiving encrypted data as well as sending files and creating session tokens in a system set up with Wave Framework. This class uses cURL (if available) to make advanced requests with file uploads and cookie containers.</p>

			<p><b>/engine/handler.api.php</b></p>

			<p><a href="gateway.htm">Index Gateway</a> <a href="handler_api.htm">API Handler</a> takes all the input variables and sends an API command to WWW_API. This class handles caching (APC or filesystem based), buffering, API observers, callbacks, encryption, profile permissions and other API-specific functionality. <a href="guide_api.htm">API</a> calls always return an array, which are then formatted based on requested data type, like JSON, XML, CSV or PHP's own internal variable. This is one of the core files of Wave Framework and should not be modified unless really needed.</p>
			
			<p><b>/engine/handler.appcache.php</b></p>
			
			<p><a href="handler_appcache.htm">Appcache Handler</a> is used to return an appcache manifest to the browser for pages that use Appcache. If this appcache file already exists in project root folder, then it is returned directly from that source. Otherwise the file will be generated.</p>

			<p><b>/engine/handler.data.php</b></p>

			<p><a href="gateway.htm">Index Gateway</a> <a href="handler_data.htm">Data Handler</a> is in functionality similar to <a href="handler_api.htm">API Handler</a>, except it uses <a href="guide_api.htm">API</a> calls that cannot be controlled with direct request. It calls WWW_controller_url to solve a URL request and it calls WWW_controller_view to display data to the user agent relevant to the request. This handler is loaded when no other handler can be used to solve the user agent request.</p>

			<p><b>/engine/handler.file.php</b></p>

			<p><a href="handler_file.htm">File Handler</a> is used for every file that is accessed and is not already served by other handlers and is set in configuration to be handled. This handler serves files such as PDF files or other files that are not usually considered 'web' formats. It also allows to return a file within byte range (which is useful for streams).</p>

			<p><b>/engine/handler.image.php</b></p>

			<p><a href="handler_image.htm">Image Handler</a> is loaded for returning image files. Image mode adds proper cache headers and also has options for dynamic image resizing and cropping through <a href="imager.htm">Imager</a> class. Images run through this mode are files with extensions *.jpeg, *.jpg, *.png. This loads the <a href="imager.htm">Imager</a> class that is used for basic image editing to return on-demand edited picture based on request.</p>

			<p><b>/engine/handler.resource.php</b></p>

			<p><a href="handler_resource.htm">Resource Handler</a> is loaded for various resource files. This data is cached, compressed and in some cases minified before being sent to the user agent with Minifier class. The file extensions sent to <a href="gateway.htm">Index Gateway</a> in this handler are *.css, *.js, *.txt, *.csv, *.xml, *.html, *.ini, *.rss, *.vcard and *.htm. <a href="handler_resource.htm">Resource Handler</a> also allows to unify CSS and JS files as well as support overriding the base functionality in case developer uses multiple installations and wants to have tweaks per-install.</p>

			<p><b>/engine/handler.robots.php</b></p>

			<p>It is always good to add robots.txt to any web service or website, even if search engine robots may not always follow these rules. This file can be used to restrict access to specific URL's from being cached until service is ready to go live. If robots.txt does not exist in root folder of the website, then this script here generates it. Otherwise it simply returns the file contents.</p>

			<p><b>/engine/handler.sitemap.php</b></p>

			<p>This handler is called whenever sitemap.xml is requested. This generates all of the non-hidden URL's based on Sitemap files in resources subfolder for all languages. If root file of the website includes a sitemap.xml file then this script simply returns its content instead of generating it from resource files. Using this is entirely optional.</p>

			<p><b>/filesystem/<br/>
			/filesystem/backups/<br/>
			/filesystem/cache/<br/>
			/filesystem/cache/output/<br/>
			/filesystem/cache/images/<br/>
			/filesystem/cache/resources/<br/>
			/filesystem/cache/custom/<br/>
			/filesystem/cache/tags/<br/>
			/filesystem/data/<br/>
			/filesystem/errors/<br/>
			/filesystem/keys/<br/>
			/filesystem/limiter/<br/>
			/filesystem/logs/<br/>
			/filesystem/messenger/<br/>
			/filesystem/sessions/<br/>
			/filesystem/static/<br/>
			/filesystem/tmp/<br/>
			/filesystem/tokens/<br/>
			/filesystem/updates/<br/>
			/filesystem/userdata/</b></p>

			<p>All of these folders must be writable by PHP for Wave Framework to properly function. Backups store system backups. Cache stores various caches for images, output and resource loading. Data is used to store databases like SQLite. Errors is used to store error logs. Keys is used to store various cryptography keys. <a href="limiter.htm">Limiter</a> is used to store HTTP request <a href="limiter.htm">Limiter</a> data. Logs is used to store log data. Messenger is used to store <a href="guide_messenger.htm">State Messenger</a>  data. Sessions are used to store API session token data. Temp folder is used to store various data temporarily. Updates folder stores update archives that have been installed. Userdata can be used for whatever purpose. Cleaner script can be used to automatically clean all of those folders either individually, by defining folder name (like 'backups'), by defining 'maintenance' mode, which cleans only cache and temporary files or 'all', which clears all of the folders.</p>

			<p><b>/models/</b></p>

			<p>Includes all models used by the system. Models are built with the following standard, where model name is written in filename as model.{name}.php, class itself is defined as WWW_model_{name} and when this model is created through WWW_Factory (when within one of the <a href="guide_mvc.htm">MVC</a> objects), the command is $this-&gt;getModel({name},{function},{data}), where function is a method of that class and {data} is input data to that method. If function and data are not defined, then object itself is returned instead of the function result.</p>

			<p><b>/models/model.{name}.php</b></p>

			<p>This folder stores Model files where the 'name' is the Model name.</p>

			<p><b>/overrides/<br/>
			/overrides/controllers/<br/>
			/overrides/models/<br/>
			/overrides/resources/<br/>
			/overrides/resources/classes/<br/>
			/overrides/resources/files/<br/>
			/overrides/resources/images/<br/>
			/overrides/resources/libraries/<br/>
			/overrides/resources/scripts/<br/>
			/overrides/resources/styles/<br/>
			/overrides/views/</b></p>

			<p>If there is a file stored in these folders when the system attempts to access a specific static resource file or load a <a href="guide_mvc.htm">MVC</a> object, these folders are checked first. This is not useful for majority of cases, but it can be used to deploy same version of software for different servers and change some functionality on one server without affecting the update cycle (all core files can still be updated without overwriting certain custom features). Images subfolder is meant for storing your image resources for CSS. Classes subfolder is meant for PHP classes that are used in the project (these can also be autoloaded through Factory).</p>

			<p><b>/resources/</b></p>

			<p>Various static resources are stored in this folder, most of these files are not required by the system unless you also intend to use /index.php and WWW_controller_view functionality for building a website with Wave Framework.</p>

			<p><b>/resources/classes/<br/>
			/resources/classes/class.{name}.js<br/>
			/resources/classes/class.{name}.php</b></p>
			
			<p><b>/resources/content/<br/>
			/resources/en.example.php</b></p>
			
			<p>These are content files that can be loaded within Views through getContent() method calls. Usually content is loaded from database, but it's an option for developers that wish to cut down more database calls.</p>
			
			<p><b>/resources/files/</b></p>
			
			<p>This folder is for all the various files that are not necessarily images or resources. This folder is used for things like static downloads.</p>
			
			<p>This folder includes all the classes that can be dynamically loaded through Factory method getObject() from either JavaScript or PHP. Filename should be formatted as class.[name].php and class name as [name]. Dynamically loaded JavaScript files should also be stored in these folders and they work the same way. Two example files are provided as a starting point.</p>
			
			<p><b>/resources/images/<br/>
			/resources/images/logo.png</b></p>

			<p>It is recommended to store various image files, such as design files, in this folder. One image is there by default (logo.png), but this can be removed if not used in any way.</p>
			
			<p><b>/resources/libraries/<br/>
			/resources/libraries/{name}.js<br/>
			/resources/libraries/{name}.php</b></p>
			
			<p>This folder stores various PHP scripts or JavaScript files that can be dynamically loaded within MVC objects through Factory classes. These files can also be automatically loaded by URL controller, if they are set. Two example scripts are provided as a starting point.</p>
			
			<p><b>/resources/scripts/<br/>
			/resources/scripts/script.php<br/>
			/resources/scripts/script.js<br/>
			/resources/scripts/jquery.js<br/>
			/resources/scripts/jquery2.js<br/>
			/resources/scripts/{view}.script.js<br/>
			/resources/scripts/{view}.script.php<br/></b></p>
			
			<p>This folder includes all the JavaScript files. All of these files are optional, but the View Controller loads the script.js and jquery.js (jQuery framework) file by default and script.php file is loaded automatically by Data and API Handlers for each request as well. You can also define view-specific scripts here for both JavaScript and PHP, which are loaded by URL and View controllers if detected. Note that jQuery 2.0 and above is not loaded unless you manually make changes to the View Controller.</p>
			
			<p><b>/resources/static/</b></p>
			
			<p>Static folder is used for static files that will never be served through PHP. On-demand dynamic loading of pictures and script files won't affect files in this folder.</p>
			
			<p><b>/resources/styles/<br/>
			/resources/styles/reset.css<br/>
			/resources/styles/style.css<br/>
			/resources/styles/{view}.style.css</b></p>
			
			<p>This folder includes all the stylesheet files. Reset CSS file (reset.css) defaults all of the styles in the browser so that you can build your own styles on top that will be same across all browsers. Main style file is 'style.css', which is loaded by View Controller by default. You can also define view-specific stylesheets here.</p>

			<p><b>/resources/api.profiles.ini</b></p>

			<p>This file stores an array of API profile names and their secret keys. When API is loaded with any other profile name than what is defined public, then the command has to be validated with the secret key from this file and the requesting user agent has to calculate hash of that command with that secret key prior to sending it to API. This file also includes other options related to API profile settings, such as timeouts and IP restrictions.</p>

			<p><b>/resources/api.observers.ini</b></p>

			<p>This file defines observers for API. Sections in this file should be API commands, such as 'example-get' under which it is possible to set multiple observer-specific settings. If the set API command is called, then an observer is executed based on settings from this file. Note that the Input observers get the same input data that the API call itself gets, except command related data. Output observers get the data that is returned after API command execution.</p>

			<p><b>/resources/{language-code}.sitemap.ini</b></p>

			<p>Sitemaps are used by WWW_controller_url to solve what view should be loaded based on user agents request. WWW_controller_url detects both languages and URL and unsolved URL nodes from the request and matches them against this file, based on language code that it detects in the request. If it finds a match here then it returns that view. Note that it can also include dynamic URL's for partial matching.</p>

			<p><b>/resources/{language-code}.translations.ini</b></p>

			<p>This file stores system translations that can be used by <a href="guide_view.htm">View Controller</a>. Translation keyword is used across the system and its value is the translation that will be displayed.</p>

			<p><b>/resources/placeholder.jpg</b></p>

			<p>If this file exists and system has enabled 404 image placeholders in configuration, then this image is loaded in case actual image is not found. This allows for 'cleaner' 404 image to be shown in case actual image is missing, and also supports the on-demand image editing functionality of Wave Framework.</p>
			
			<p><b>/resources/offline.htm</b></p>
			
			<p>This is the file that is served when Appcache is not available and no internet is used for the page.</p>

			<p><b>/tools/</b></p>

			<p>Tools is a folder meant only for maintenance and development purposes and for a developer. Most of the <a href="guide_tools.htm">Developer Tools</a> in this folder require HTTP authentication or a user due to sensitive nature of the tools. It is recommended to remove this folder entirely before deploying a project live, or limit access to it with an IP.</p>

			<p><b>/tools/tests/</b></p>
			
			<p>This folder stores the test case descriptions as INI files.</p>
			
			<p><b>/tools/.htaccess</b></p>

			<p>This Apache-specific file is used to test whether mod_rewrite works for compatibility script.</p>

			<p><b>/tools/adminer.css<br/>
			/tools/adminer.php</b></p>

			<p>Adminer is a lightweight multi-functional database administration tool by Jakub Vrana.</p>

			<p><b>/tools/api-info.php</b></p>

			<p>This script lists all controllers and their methods, as well as all API profiles that can use these methods. This is meant for an overview of API commands for documentation purposes or otherwise. It shows all API commands based on what their 'www-command' value should be as well as displays comments that have been written next to these methods. It is also possible to show commands for only specific API profile by defining GET variable 'profile'.</p>

			<p><b>/tools/backup.php</b></p>

			<p>This script creates backup of entire system together with filesystem or just a backup of the main core files. The type of backup depends on GET variable. 'all' creates backup of everything, 'system' creates backup of just the system files. Files are stored in /filesystem/backups/ folder.</p>

			<p><b>/tools/cleaner.php</b></p>

			<p>This script is used to clear Wave Framework system generated filesystem. It should be used for debugging purposes during development or for maintenance once system is deployed. This script can be configured by running it with a GET variable. Possible values are 'maintenance' (clears only cache and temporary files), 'all' (clears everything), 'output' (clears output cache), 'images' (clears images cache), 'resources' (clears cache of JavaScript and CSS), 'custom' (clears custom cache), 'tags' (clears cache tags), 'messenger' (clears <a href="guide_messenger.htm">State Messenger</a> data), 'errors' (clears debugging errors), 'limiter' (clears request data of user agent IP's), 'logs' (clears system logs), 'tokens' (clears API session tokens), 'tmp' (clears folder from everything that might be stored here), 'data' (clears the folder intended for database storage), 'backups' and 'updates' (clears folders that store backup and update archives) and 'userdata' (entirely custom storage folder). Please make sure to use 'all' carefully, since it might remove sensitive data. The script runs in 'maintenance' mode by default.</p>

			<p><b>/tools/compatibility.php</b></p>

			<p>This script checks if installation is ready for WWW Framework. It checks for PHP version, whether Apache mod_rewrite RewriteEngine or Nginx URL rewriting is turned on and whether filesystem can be written to.</p>

			<p><b>/tools/debugger.php</b></p>

			<p>This is a script that collects error messages that have been written to filesystem. It also provides method to easily delete the error log about a specific error message, once it is considered 'fixed'. This script should be checked every now and then to test and make sure that there are no outstanding problems in the system.</p>
			
			<p><b>/tools/log-reader.php</b></p>

			<p>This is a simple script that is used to read log files stored by <a href="logger.htm">Logger</a> class. It loads a log file defined by specific timestamp formatted as Y-m-d-H. By default it displays information about all the requests that have happened in the current hour, but if GET variable 'log' is supplied in same timestamp format, then that log file data is returned instead.</p>

			<p><b>/tools/php-info.php</b></p>

			<p>This simple script is simply used to return current PHP information and call phpinfo() function. This function details a lot of important information about PHP installation and server setup.</p>
			
			<p><b>/tools/style.css</b>
			
			<p>Stylesheet for majority of developer tools scripts.</p>
			
			<p><b>/tools/tester.php</b>
			
			<p>This is the developer tool for running test cases that are stored in /tests/ folder.</p>
			
			<p><b>/tools/tools_autoload.php</b></p>

			<p>This script includes authentication, timezone detection and software version detection and other functionality that is useful for developer tools scripts.</p>
			
			<p><b>/tools/tools_functions.php</b></p>

			<p>This script includes various general-use functions that are used by developer tools in WWW Framework that are stored in /tools/ folder. This includes scripts such as directory cleaner and mass-file mover through FTP.</p>

			<p><b>/tools/updater.php</b></p>

			<p>This script is used to update Wave Framework application. It downloads an archive from specific URL and unpacks it in the temporary folder where it will be used by FTP to update all files in root folder of the system.</p>

			<p><b>/tools/www-updater.php</b></p>

			<p>This is an update script template, if file with this name is added to root archive of update zip files that is given to /tools/updater.php, then this script is also executed (and then removed). This script is useful to store in other update-related commands, such as file permissions, database changes and so on.</p>

			<p><b>/views/</b></p>

			<p>Includes all views used by the system. Views are built with the following standard, where view name is written in filename as view.{name}.php, class itself is defined as WWW_view_{name} and when this view is created through WWW_Factory (when within one of the <a href="guide_mvc.htm">MVC</a> objects), the command is $this-&gt;getView({name},{function},{data}), where function is a method of that class and {data} is input data to that method. If function and data are not defined, then object itself is returned instead of the function result.</p>

			<p><b>/views/view.{name}.php</b></p>

			<p>This folder stores Views in the system, 'name' is the name of the View.</p>
			
			<p><b>/views/view.404.php</b></p>

			<p>This view is called by WWW_controller_view if WWW_controller_url could not find a matching view for current request. This can be used to customize page-specific page-not-found pages, however this view is not used for missing files and other static resources.</p>

			<p><b>/views/view.home.php</b></p>

			<p>This view is loaded when WWW_controller_view finds root or home page as the view file. Name of the 'home' view is defined as a default in <a href="state.htm">State</a> Class. This home view example also shows how to use translations.</p>

			<p><b>/.htaccess</b></p>

			<p>Apache commands are stored in this file, including the loading of RewriteEngine, which is used to filter requests to certain file extensions and direct certain files to /index.php for parsing, including loading all URL's that it cannot find that WWW_controller_url can solve.</p>

			<p><b>/.version</b></p>

			<p>This carries version information about current setup. It includes version number for Wave Framework as well as for system itself, if you wish to use update script and check for updates that are version-specific.</p>

			<p><b>/config.ini</b></p>

			<p>All configuration settings in this file are loaded into <a href="guide_state.htm">State</a> where certain variables can be set that change frameworks behavior. This configuration script is also used by scripts under /tools/ folder. Note that most settings in this file are commented out since system can function with default values. Uncomment and edit configuration only when wishing to change defaults.</p>

			<p><b>/favicon.ico</b></p>

			<p>Favicon is used by web browsers and certain web applications to show an icon for your website or web service. It is always good to have a Favicon in your service when it is bookmarked or used by RSS readers.</p>

			<p><b>/index.php</b></p>

			<p><a href="gateway.htm">Index Gateway</a> is a file where majority of requests are forwarded by Apache and '/.htaccess' file. This file serves caches and compresses data, if supported, for both static files as well as regular views. It also displays errors for files not found or files that are forbidden to be accessed. Handlers for <a href="gateway.htm">Index Gateway</a> are stored in '/engine/' subfolder.</p>

			<p><b>/license.txt</b></p>

			<p>GNU Lesser General Public License Version 3 legal text for Wave Framework.</p>

			<p><b>/nginx.conf</b></p>

			<p>Nginx commands are stored in this file, including the URL rewrite commands, which are used to filter requests to certain file extensions and direct certain files to /index.php for parsing, including loading all URL's that it cannot find that WWW_controller_url can solve.</p>

			<p><b>/readme.txt</b></p>

			<p>General information about Wave Framework, authors and installation.</p>
			
	</body>
</html>